var config = {
  ep: '',
  getUe4ToWebKyes: '',
  getWebToUe4Kyes: '',
};

export function ue4Init(data) {
  config = data;
  require('./ue4Init');
  ue4EventsInit();
  return getUe4();
}

export function getUe4() {
  return {
    ...config,
    webToUe4,
  };
}

//事件初始化
function ue4EventsInit() {
  const { ep, getUe4ToWebKyes } = getUe4();

  // 使用eq转发 ue4ToWeb 事件
  Object.keys(getUe4ToWebKyes).forEach((key, i) => {
    ue.interface[key] = data => ep.emit(key, data);
  });

  // 使用监听  webToUe4 事件
  ep.on('webToUe4', function(webToUe4Data) {
    const { type, data } = webToUe4Data;
    window.ue4(type, data);
  });
}

// 向 ue4发送事件
function webToUe4(type, data) {
  const { ep, getUe4ToWebKyes } = getUe4();
  ep.emit('webToUe4', { type: type, data: data });
}

export default {
  ue4Init,
  getUe4,
};
